package a12_SeqList.ArrayList;

/**
 * @Author quan
 * @Description 定义一个线性表接口SeqList
 * @Date 2023/3/11 21:16
 */
public interface SeqList<E> {
    /**
     * 增：直接增加元素
     */
    void add(E element);
    /**
     * 增：在索引为Index的位置增加元素
     */
    void add(int index,E element);
    /**
     * 删：通过索引删除元素，并返回删除的值
     */
    E removeByIndex(int index);
    /**
     * 删：通过值删除元素：删除第一个值为element的元素
     */
    void removeByValue(E element);
    /**
     * 删：删除所有值为element的元素
     */
    void removeAllValue(E element);
    /**
     * 改：在索引为index的位置设置值，并返回该值
     */
    E set(int index,E elemnet);
    /**
     * 查：查询索引为index的值，并返回查询到的值
     */
    E get(int index);
    /**
     * 判断当前线性表中是否包含该元素值
     */
    boolean contains(E element);
    /**
     * 查询值为element的索引并返回该值
     */
    int indexOf(E element);
}
